// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently

#pragma once

#ifndef STRICT
#define STRICT
#endif

// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER				// Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0400		// Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT		// Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0400	// Change this to the appropriate value to target Windows 2000 or later.
#endif						

#ifndef _WIN32_WINDOWS		// Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE			// Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400	// Change this to the appropriate value to target IE 5.0 or later.
#endif

#define _ATL_APARTMENT_THREADED
#define _ATL_NO_AUTOMATIC_NAMESPACE

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS	// some CString constructors will be explicit

// turns off ATL's hiding of some common and often safely ignored warning messages
#define _ATL_ALL_WARNINGS

#include "resource.h"
#include <atlstr.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlapp.h>
#include <atlcomcli.h>
#include <atlwin.h>

#undef _WTL_NO_WTYPES
#define _WTL_NO_CSTRING
#include <atlmisc.h>
#include <atlpath.h>
#include <atlddx.h>
#include <comdef.h>
#include <atlframe.h>
#include <atlctrls.h>
#define _WTL_NEW_PAGE_NOTIFY_HANDLERS
#include <atldlgs.h>
#include <atlcoll.h>
#include <atlctrlw.h>
#include <atlctrlx.h>
#include <atlctl.h>
#include <atlsafe.h>
#include <memory>
#include <map>
#include <algorithm>
#include <ctype.h>
#include <iosfwd>
#include <sstream>
#include <list>
#include <ComDef.h>
#pragma comment(lib, "comsuppw.lib")

using namespace ATL;

#include "private\artsys.h"
#include "resource.h"
#include "ArtHelper.h"
#include "private\langids.h"
#include "SafDebug.h"
#include "private\AtlComEx.h"
#include "private\ArtIniFile.h"
#include "private\StlType.h"
#include "SafTools.h"
#include "private\Guid.h"

#pragma warning( disable : 4278 )
#pragma warning( disable : 4146 )
	//The following #import imports the IDTExtensibility2 interface based on it's LIBID
	#import "libid:AC0714F2-3D04-11D1-AE7D-00A0C90F26F4" version("1.0") lcid("0")  raw_interfaces_only named_guids

	//The following #import imports VS Command Bars based on it's LIBID
	#import "libid:1CBA492E-7263-47BB-87FE-639000619B15" version("8.0") lcid("0") raw_interfaces_only named_guids

	//The following #import imports DTE based on it's LIBID
	#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids

	//The following #import imports DTE80 based on it's LIBID
	#import "libid:1A31287A-4D7D-413e-8E32-3B374931BD89" version("8.0") lcid("0") raw_interfaces_only named_guids

	//The following #import imports VCWIZLib based on it's LIBID
	#import "libid:20a46155-d810-4752-a42a-c1b2d3279156" version("8.0") lcid("0") raw_interfaces_only named_guids

	//C:\\Windows\\system32\\scrrun.dll
	#import "libid:420b2830-e718-11cf-893d-00a0c9054228" raw_interfaces_only named_guids

	//C:\Program Files\Microsoft Visual Studio 8\VC\vcpackages\VCProjectEngine.dll\2
	#import "libid:FBBF3C60-2428-11D7-8BF6-00B0D03DAA06" version("8.0") lcid("0") raw_interfaces_only rename_namespace("VCProject")

	//#import "libid:72F11228-2429-11D7-8BF6-00B0D03DAA06" version("8.0") lcid("0") raw_interfaces_only named_guids

	//#import "libid:6B96E914-4E98-44D6-BD67-173694B10F37" version("8.0") lcid("0") raw_interfaces_only rename("__missing_type__", "int") rename_namespace("resedit")


#pragma warning( default : 4146 )
#pragma warning( default : 4278 )

#define IfFailGo(x) { hr=(x); if (FAILED(hr)) goto Error; }
#define IfFailGoCheck(x, p) { hr=(x); if (FAILED(hr)) goto Error; if(!p) {hr = E_FAIL; goto Error; } }

class DECLSPEC_UUID("E608A08E-4AF8-47A7-8A2D-799B7D81F315") ArtHelperLib;


class CAddInModule : public CAtlDllModuleT< CAddInModule >
{
public:
	CAddInModule()
	{
		m_hInstance = NULL;
	}

	DECLARE_LIBID(__uuidof(ArtHelperLib))

	inline HINSTANCE GetResourceInstance()
	{
		return m_hInstance;
	}

	inline void SetResourceInstance(HINSTANCE hInstance)
	{
		m_hInstance = hInstance;
	}

private:
	HINSTANCE m_hInstance;
};

extern CAddInModule _AtlModule;
//#import "C:\Program Files\Common Files\Microsoft Shared\MSEnv\dte80a.olb" raw_interfaces_only, raw_native_types, no_namespace, named_guids, auto_search
